
import java.awt.*;
import javax.swing.*;

/**
 * Clase para representar los compoentes de la interfaz gráfica.
 *
 * @author Villalva Bueno Arely Eunice
 * @author Romero Rodriguez Gabriel Eduardo
 */
public class UI extends JPanel {

    JButton step = new JButton("Etapa");
    JButton run = new JButton("Correr");
    JTextField tfrun = new JTextField();
    JButton reset = new JButton("Reinicio");
    JButton addinst = new JButton("Agregar Instrucción");
    JTextField tfai = new JTextField();
    JButton clear = new JButton("Limpiar Instrucciones");
    JButton delete = new JButton("Borrar Instrucciones");
    JButton edit = new JButton("Cambiar Instrucciones");
    JButton help = new JButton("Ayuda!");
    JCheckBox branch = new JCheckBox("Branch Prediction");
    JCheckBox forward = new JCheckBox("Forwarding");
    JTextField tfedit = new JTextField();

    /**
     * implementa el arreglo de los componentes
     */
    public UI() {
        setLayout(new GridLayout(4, 4, 5, 5));
        Canvas filler1 = new Canvas();
        Canvas filler2 = new Canvas();
        Canvas filler3 = new Canvas();

        add(filler1);
        add(forward);
        add(branch);
        branch.setEnabled(false);
        add(filler2);

        add(reset);
        add(step);
        add(run);
        add(tfrun);

        add(clear);
        add(delete);
        add(addinst);
        add(tfai);

        add(help);
        add(filler3);
        add(edit);
        add(tfedit);
    }

    /**
     * Indica si el forwarding esta activado
     */
    public boolean doForwarding() {
        return forward.isEnabled();
    }

    /**
     * indica si el branch prediction esta activado.
     */
    public boolean doBP() {
        return branch.isEnabled();
    }
}
